Hello community, here is the log from the commit of package baloo for openSUSE:Factory checked in at 2014-04-26 09:59:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/baloo (Old) and /work/SRC/openSUSE:Factory/.baloo.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "baloo" Changes: -------- --- /work/SRC/openSUSE:Factory/baloo/baloo.changes 2014-04-22 07:37:58.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.baloo.new/baloo.changes 2014-04-26 09:59:30.000000000 +0200 @@ -1,0 +2,25 @@ +Sat Apr 26 01:06:24 UTC 2014 - hrvoje.senjan@gmail.com + +- Add more upstream fixes: + 0001-Cleaner-Do-not-commit-each-time-after-1000-documents.patch (kde#333807) and + 0002-XapianSearchStore-Catch-the-database-modified-except.patch (kde#333761) + +------------------------------------------------------------------- +Wed Apr 23 18:57:50 UTC 2014 - tittiatcoke@gmail.com + +- Drop patch kauth.patch as that the security review has been + completed. + +- Loosen up the requires as that people might not want Baloo and + upstream doesn't want to implement an on-off switch, but + recommends to deinstall certain files. + +------------------------------------------------------------------- +Tue Apr 22 19:52:32 UTC 2014 - hrvoje.senjan@gmail.com + +- Added 0002-Cleaner-Remove-the-database-file-on-disabling.patch, + 0003-Use-QFile-encodeName-and-catch-some-exceptions.patch and + 0004-KCM-Show-the-home-folder-name-when-excluding-it.patch from + upstream to resolve various usability issues + +------------------------------------------------------------------- Old: ---- kauth.patch New: ---- 0001-Cleaner-Do-not-commit-each-time-after-1000-documents.patch 0002-Cleaner-Remove-the-database-file-on-disabling.patch 0002-XapianSearchStore-Catch-the-database-modified-except.patch 0003-Use-QFile-encodeName-and-catch-some-exceptions.patch 0004-KCM-Show-the-home-folder-name-when-excluding-it.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ baloo.spec ++++++ --- /var/tmp/diff_new_pack.pkQ8GG/_old 2014-04-26 09:59:31.000000000 +0200 +++ /var/tmp/diff_new_pack.pkQ8GG/_new 2014-04-26 09:59:31.000000000 +0200 @@ -23,10 +23,18 @@ License: GPL-2.0+ and LGPL-2.1+ Group: System/GUI/KDE Source0: %{name}-%{version}.tar.xz -# PATCH-FIX-OPENSUSE tittiatcoke@gmail.com Don't build the filewatch_raiselimit to prevent security issues -Patch1: kauth.patch # PATCH-FIX-UPSTREAM 0001-Bug-333566-Quick-filter-in-KMail-4.13-stops-working-.patch -- fixes KMail searches with non-Latin characters Patch2: 0001-Bug-333566-Quick-filter-in-KMail-4.13-stops-working-.patch +# PATCH-FIX-UPSTREAM 0002-Cleaner-Remove-the-database-file-on-disabling.patch +Patch3: 0002-Cleaner-Remove-the-database-file-on-disabling.patch +# PATCH-FIX-UPSTREAM 0003-Use-QFile-encodeName-and-catch-some-exceptions.patch +Patch4: 0003-Use-QFile-encodeName-and-catch-some-exceptions.patch +# PATCH-FIX-UPSTREAM 0004-KCM-Show-the-home-folder-name-when-excluding-it.patch +Patch5: 0004-KCM-Show-the-home-folder-name-when-excluding-it.patch +# PATCH-FIX-UPSTREAM 0001-Cleaner-Do-not-commit-each-time-after-1000-documents.patch +Patch6: 0001-Cleaner-Do-not-commit-each-time-after-1000-documents.patch +# PATCH-FIX-UPSTREAM 0002-XapianSearchStore-Catch-the-database-modified-except.patch +Patch7: 0002-XapianSearchStore-Catch-the-database-modified-except.patch BuildRequires: kfilemetadata-devel >= %{version} BuildRequires: libakonadiprotocolinternals-devel BuildRequires: libattr-devel @@ -40,8 +48,8 @@ %package core Summary: Core components for Baloo Framework Group: System/GUI/KDE -Requires: %{name}-kioslaves = %{version} -Requires: %{name}-tools = %{version} +Recommends: %{name}-kioslaves = %{version} +Recommends: %{name}-tools = %{version} Requires: libxapian22 >= 1.2.17 %description core @@ -51,7 +59,7 @@ %package -n libbaloofiles4 Summary: Files library for Baloo Framework Group: System/GUI/KDE -Requires: %{name}-file = %{version} +Recommends: %{name}-file = %{version} %description -n libbaloofiles4 Baloo is a framework for searching and managing metadata. This @@ -69,7 +77,7 @@ %package -n libbaloopim4 Summary: PIM library for Baloo Framework Group: System/GUI/KDE -Requires: %{name}-pim = %{version} +Recommends: %{name}-pim = %{version} %description -n libbaloopim4 Baloo is a framework for searching and managing metadata. This @@ -87,6 +95,7 @@ %package kioslaves Summary: KIO slave components for Baloo Framework Group: System/GUI/KDE +Requires: %{name}-core = %{version} %description kioslaves Baloo is a framework for searching and managing metadata. This @@ -95,6 +104,7 @@ %package tools Summary: Aditional components for Baloo Framework Group: System/GUI/KDE +Requires: %{name}-core = %{version} %description tools Baloo is a framework for searching and managing metadata. This @@ -114,8 +124,12 @@ %prep %setup -q -%patch1 -p1 %patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 %build %cmake_kde4 -d build @@ -169,13 +183,10 @@ %{_kde4_servicesdir}/baloo_filesearchstore.desktop %{_kde4_modulesdir}/baloo_filesearchstore.so %{_kde4_iconsdir}/hicolor/*/apps/baloo.png -%if 0 -# These files can only be activated once the security team did a full review %{_kde4_modulesdir}/libexec/kde_baloo_filewatch_raiselimit %{_kde4_datadir}/dbus-1/system-services/org.kde.baloo.filewatch.service %{_kde4_datadir}/polkit-1/actions/org.kde.baloo.filewatch.policy %{_kde4_sysconfdir}/dbus-1/system.d/org.kde.baloo.filewatch.conf -%endif %files kioslaves %defattr(-,root,root) ++++++ 0001-Cleaner-Do-not-commit-each-time-after-1000-documents.patch ++++++
From 8b7b9cf036e9155a3eb3a15bbf70a5d7a78ea2f6 Mon Sep 17 00:00:00 2001 From: Vishesh Handa
Date: Thu, 24 Apr 2014 19:29:21 +0200 Subject: [PATCH 1/3] Cleaner: Do not commit each time after 1000 documents
Patch submitted by 191c4ec3@opayq.com BUG: 333807 FIXED-IN: 4.13.1 --- src/file/cleaner/cleaner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/file/cleaner/cleaner.cpp b/src/file/cleaner/cleaner.cpp index 21eb1cd..e7dca0b 100644 --- a/src/file/cleaner/cleaner.cpp +++ b/src/file/cleaner/cleaner.cpp @@ -82,7 +82,7 @@ void Cleaner::start() numDocuments++; } - if (numDocuments >= 1000) { + if (numDocuments && numDocuments % 1000 == 0) { m_commitQueue->commit(); } } -- 1.9.2 ++++++ 0002-Cleaner-Remove-the-database-file-on-disabling.patch ++++++
From 2a8f6fbd54eae37c4689cdc630c5f98782733e1b Mon Sep 17 00:00:00 2001 From: Vishesh Handa
Date: Tue, 22 Apr 2014 13:25:16 +0200 Subject: [PATCH 1/3] Cleaner: Remove the database file on disabling
Instead of manually cleaning every file which would consume a lot of time and cpu. --- src/file/cleaner/main.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/file/cleaner/main.cpp b/src/file/cleaner/main.cpp index fa08071..dd26f88 100644 --- a/src/file/cleaner/main.cpp +++ b/src/file/cleaner/main.cpp @@ -29,9 +29,12 @@ #include <KComponentData> #include <QApplication> #include <QDBusConnection> +#include <QFile> +#include <QDir> #include <KDebug> #include <KStandardDirs> +#include <KConfigGroup> int main(int argc, char* argv[]) { @@ -58,6 +61,18 @@ int main(int argc, char* argv[]) const QString path = KGlobal::dirs()->localxdgdatadir() + "baloo/file/"; + KConfig config("baloofilerc"); + KConfigGroup group = config.group("Basic Settings"); + bool indexingEnabled = group.readEntry("Indexing-Enabled", true); + if (!indexingEnabled) { + QDir dir(path); + Q_FOREACH (const QString& file, dir.entryList(QDir::Files)) { + dir.remove(file); + } + QFile::remove(path); + return 0; + } + Database db; db.setPath(path); db.init(); -- 1.9.2 ++++++ 0002-XapianSearchStore-Catch-the-database-modified-except.patch ++++++
From 0a3d303d726df0bc0f97e99d3116b8972f92bf00 Mon Sep 17 00:00:00 2001 From: Vishesh Handa
Date: Fri, 25 Apr 2014 16:28:38 +0200 Subject: [PATCH 2/3] XapianSearchStore: Catch the database modified exception
The database can get modified in the middle BUG: 333761 FIXED-IN: 4.13.1 --- src/xapian/xapiansearchstore.cpp | 69 +++++++++++++++++++++++----------------- 1 file changed, 39 insertions(+), 30 deletions(-) diff --git a/src/xapian/xapiansearchstore.cpp b/src/xapian/xapiansearchstore.cpp index 0edf99a..76e3b1d 100644 --- a/src/xapian/xapiansearchstore.cpp +++ b/src/xapian/xapiansearchstore.cpp @@ -205,43 +205,52 @@ int XapianSearchStore::exec(const Query& query) if (!m_db) return 0; - QMutexLocker lock(&m_mutex); - try { - m_db->reopen(); - } catch (Xapian::DatabaseError& e) { - kWarning() << "Failed to reopen database" << dbPath() << ":" << QString::fromStdString(e.get_msg()); - return 0; - } + while (1) { + try { + QMutexLocker lock(&m_mutex); + try { + m_db->reopen(); + } catch (Xapian::DatabaseError& e) { + kWarning() << "Failed to reopen database" << dbPath() << ":" << QString::fromStdString(e.get_msg()); + return 0; + } - QTime queryGenerationTimer; - queryGenerationTimer.start(); + QTime queryGenerationTimer; + queryGenerationTimer.start(); - Xapian::Query xapQ = toXapianQuery(query.term()); - if (query.searchString().size()) { - QString str = query.searchString(); + Xapian::Query xapQ = toXapianQuery(query.term()); + if (query.searchString().size()) { + QString str = query.searchString(); - Xapian::Query q = constructSearchQuery(str); - xapQ = andQuery(xapQ, q); - } - xapQ = andQuery(xapQ, convertTypes(query.types())); - xapQ = andQuery(xapQ, constructFilterQuery(query.yearFilter(), query.monthFilter(), query.dayFilter())); - xapQ = applyCustomOptions(xapQ, query.customOptions()); - xapQ = finalizeQuery(xapQ); + Xapian::Query q = constructSearchQuery(str); + xapQ = andQuery(xapQ, q); + } + xapQ = andQuery(xapQ, convertTypes(query.types())); + xapQ = andQuery(xapQ, constructFilterQuery(query.yearFilter(), query.monthFilter(), query.dayFilter())); + xapQ = applyCustomOptions(xapQ, query.customOptions()); + xapQ = finalizeQuery(xapQ); + + Xapian::Enquire enquire(*m_db); + kDebug() << xapQ.get_description().c_str(); + enquire.set_query(xapQ); - Xapian::Enquire enquire(*m_db); - kDebug() << xapQ.get_description().c_str(); - enquire.set_query(xapQ); + kDebug() << "Query Generation" << queryGenerationTimer.elapsed(); - kDebug() << "Query Generation" << queryGenerationTimer.elapsed(); + Result& res = m_queryMap[m_nextId++]; + QTime timer; + timer.start(); + res.mset = enquire.get_mset(query.offset(), query.limit()); + res.it = res.mset.begin(); - Result& res = m_queryMap[m_nextId++]; - QTime timer; - timer.start(); - res.mset = enquire.get_mset(query.offset(), query.limit()); - res.it = res.mset.begin(); + kDebug() << "Exec" << timer.elapsed() << "msecs"; + return m_nextId-1; + } + catch (const Xapian::DatabaseModifiedError&) { + continue; + } + } - kDebug() << "Exec" << timer.elapsed() << "msecs"; - return m_nextId-1; + return 0; } void XapianSearchStore::close(int queryId) -- 1.9.2 ++++++ 0003-Use-QFile-encodeName-and-catch-some-exceptions.patch ++++++
From 5a2e520a4f5db3a0d1180c41e1d0e29927b1cbe8 Mon Sep 17 00:00:00 2001 From: Montel Laurent
Date: Tue, 22 Apr 2014 13:24:27 +0200 Subject: [PATCH 2/3] Use QFile::encodeName and catch some exceptions
--- src/file/lib/db.cpp | 3 ++- src/pim/agent/agent.cpp | 4 +++- src/pim/lib/contactcompleter.cpp | 4 +++- src/pim/lib/contactquery.cpp | 11 ++++++++++- src/pim/lib/emailquery.cpp | 4 +++- src/pim/lib/notequery.cpp | 11 ++++++++++- 6 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/file/lib/db.cpp b/src/file/lib/db.cpp index 15bd62b..10bf933 100644 --- a/src/file/lib/db.cpp +++ b/src/file/lib/db.cpp @@ -27,10 +27,11 @@ #include <QSqlQuery> #include <QSqlError> +#include <QFile> std::string fileIndexDbPath() { - return (KGlobal::dirs()->localxdgdatadir() + "baloo/file").toUtf8().constData(); + return QFile::encodeName(KGlobal::dirs()->localxdgdatadir() + "baloo/file").constData(); } QSqlDatabase fileMappingDb() { diff --git a/src/pim/agent/agent.cpp b/src/pim/agent/agent.cpp index 7de454e..8904d49 100644 --- a/src/pim/agent/agent.cpp +++ b/src/pim/agent/agent.cpp @@ -41,6 +41,8 @@ #include <KConfigGroup> #include <KLocalizedString> +#include <QFile> + namespace { QString dbPath(const QString& dbName) { QString basePath = "baloo"; @@ -144,7 +146,7 @@ qlonglong BalooIndexingAgent::indexedItemsInDatabase(const std::string& term, co { Xapian::Database db; try { - db = Xapian::Database(dbPath.toUtf8().constData()); + db = Xapian::Database(QFile::encodeName(dbPath).constData()); } catch (const Xapian::DatabaseError& e) { kError() << "Failed to open database" << dbPath << ":" << QString::fromStdString(e.get_msg()); return 0; diff --git a/src/pim/lib/contactcompleter.cpp b/src/pim/lib/contactcompleter.cpp index c7e011d..e841ddd 100644 --- a/src/pim/lib/contactcompleter.cpp +++ b/src/pim/lib/contactcompleter.cpp @@ -26,6 +26,8 @@ #include <KStandardDirs> #include <KDebug> +#include <QFile> + using namespace Baloo::PIM; ContactCompleter::ContactCompleter(const QString& prefix, int limit) @@ -40,7 +42,7 @@ QStringList ContactCompleter::complete() const QString dir = KGlobal::dirs()->localxdgdatadir() + "baloo/emailContacts/"; Xapian::Database db; try { - db = Xapian::Database(dir.toUtf8().constData()); + db = Xapian::Database(QFile::encodeName(dir).constData()); } catch (const Xapian::DatabaseError& e) { kWarning() << QString::fromStdString(e.get_type()) << QString::fromStdString(e.get_description()); diff --git a/src/pim/lib/contactquery.cpp b/src/pim/lib/contactquery.cpp index a30fb59..9740969 100644 --- a/src/pim/lib/contactquery.cpp +++ b/src/pim/lib/contactquery.cpp @@ -28,6 +28,8 @@ #include <KDebug> #include <KStandardDirs> +#include <QFile> + using namespace Baloo::PIM; class ContactQuery::Private { @@ -102,7 +104,14 @@ void ContactQuery::setMatchCriteria(ContactQuery::MatchCriteria m) ResultIterator ContactQuery::exec() { const QString dir = KGlobal::dirs()->localxdgdatadir() + "baloo/contacts/"; - Xapian::Database db(dir.toUtf8().constData()); + Xapian::Database db; + + try { + db = Xapian::Database(QFile::encodeName(dir).constData()); + } catch (const Xapian::DatabaseError& e) { + kWarning() << "Failed to open Xapian database:" << QString::fromStdString(e.get_error_string()); + return ResultIterator(); + } QListXapian::Query m_queries; diff --git a/src/pim/lib/emailquery.cpp b/src/pim/lib/emailquery.cpp index e23f8b9..af25962 100644 --- a/src/pim/lib/emailquery.cpp +++ b/src/pim/lib/emailquery.cpp @@ -27,6 +27,8 @@ #include <KStandardDirs> +#include <QFile> + using namespace Baloo::PIM; class EmailQuery::Private @@ -184,7 +186,7 @@ ResultIterator EmailQuery::exec() const QString dir = KGlobal::dirs()->localxdgdatadir() + "baloo/email/"; Xapian::Database db; try { - db = Xapian::Database(dir.toUtf8().constData()); + db = Xapian::Database(QFile::encodeName(dir).constData()); } catch (const Xapian::DatabaseError& e) { kWarning() << "Failed to open Xapian database:" << QString::fromStdString(e.get_error_string()); return ResultIterator(); diff --git a/src/pim/lib/notequery.cpp b/src/pim/lib/notequery.cpp index 2257cc6..632fcd8 100644 --- a/src/pim/lib/notequery.cpp +++ b/src/pim/lib/notequery.cpp @@ -25,6 +25,8 @@ #include "xapian.h" #include <QList> +#include <QFile> + #include <KDebug> #include <KStandardDirs> @@ -77,7 +79,14 @@ int NoteQuery::limit() const ResultIterator NoteQuery::exec() { const QString dir = KGlobal::dirs()->localxdgdatadir() + "baloo/notes/"; - Xapian::Database db(dir.toUtf8().constData()); + + Xapian::Database db; + try { + db = Xapian::Database(QFile::encodeName(dir).constData()); + } catch (const Xapian::DatabaseError& e) { + kWarning() << "Failed to open Xapian database:" << QString::fromStdString(e.get_error_string()); + return ResultIterator(); + } QListXapian::Query m_queries; -- 1.9.2 ++++++ 0004-KCM-Show-the-home-folder-name-when-excluding-it.patch ++++++
From db1ad7bb243e74028ad2b26b5271220b382a9b31 Mon Sep 17 00:00:00 2001 From: Vishesh Handa
Date: Tue, 22 Apr 2014 13:37:48 +0200 Subject: [PATCH 3/3] KCM: Show the home folder name when excluding it
--- src/file/kcm/folderselectionwidget.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/file/kcm/folderselectionwidget.cpp b/src/file/kcm/folderselectionwidget.cpp index 1808e65..44d52ab 100644 --- a/src/file/kcm/folderselectionwidget.cpp +++ b/src/file/kcm/folderselectionwidget.cpp @@ -293,8 +293,13 @@ QString FolderSelectionWidget::getFolderDisplayName(const QString& url) const QString name = url; // Check Home Dir - if (url.startsWith(QDir::homePath())) { - name = url.mid(QDir::homePath().length() + 1); + QString homePath = QDir::homePath() + '/'; + if (url == homePath) { + return QDir(homePath).dirName(); + } + + if (url.startsWith(homePath)) { + name = url.mid(homePath.size()); } else { // Check Mount allMountPointsExcluded -- 1.9.2 -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org