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 - [email protected]
+
+- 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 - [email protected]
+
+- 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 - [email protected]
+
+- 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 [email protected]  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 <[email protected]>
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 [email protected]

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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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();
+    }
 
     QList<Xapian::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();
+    }
 
     QList<Xapian::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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to