forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
kde-frameworks/baloo: Fix index corruption, fix error w/o index
a) [BasicIndexingJob] Strip trailing slash from folders Upstream commit 9b61371fdefbd538938f20cdc87eed03d170fa5b KDE-Bug: https://bugs.kde.org/show_bug.cgi?id=430273 Thanks-to: josef64 (in #gentoo-kde IRC) b) Avoid errors for application startup if no baloo index was ever created Upstream commit d102b01ee59d93de3fe18c12364ea69a85ea723f Package-Manager: Portage-3.0.12, Repoman-3.0.2 Signed-off-by: Andreas Sturmlechner <[email protected]>
- Loading branch information
Showing
3 changed files
with
151 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# Copyright 1999-2021 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=7 | ||
|
||
ECM_TEST="forceoptional" | ||
PVCUT=$(ver_cut 1-2) | ||
QTMIN=5.15.1 | ||
VIRTUALX_REQUIRED="test" | ||
inherit ecm kde.org | ||
|
||
DESCRIPTION="Framework for searching and managing metadata" | ||
LICENSE="LGPL-2+" | ||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" | ||
IUSE="" | ||
|
||
DEPEND=" | ||
>=dev-db/lmdb-0.9.17 | ||
>=dev-qt/qtdbus-${QTMIN}:5 | ||
>=dev-qt/qtdeclarative-${QTMIN}:5 | ||
>=dev-qt/qtgui-${QTMIN}:5 | ||
>=dev-qt/qtwidgets-${QTMIN}:5 | ||
=kde-frameworks/kconfig-${PVCUT}*:5 | ||
=kde-frameworks/kcoreaddons-${PVCUT}*:5 | ||
=kde-frameworks/kcrash-${PVCUT}*:5 | ||
=kde-frameworks/kdbusaddons-${PVCUT}*:5 | ||
=kde-frameworks/kfilemetadata-${PVCUT}*:5 | ||
=kde-frameworks/ki18n-${PVCUT}*:5 | ||
=kde-frameworks/kidletime-${PVCUT}*:5 | ||
=kde-frameworks/kio-${PVCUT}*:5 | ||
=kde-frameworks/solid-${PVCUT}*:5 | ||
" | ||
RDEPEND="${DEPEND}" | ||
|
||
RESTRICT+=" test" # bug 624250 | ||
|
||
PATCHES=( | ||
"${FILESDIR}/${P}-strip-trailing-slash.patch" | ||
"${FILESDIR}/${P}-no-error-w-o-index.patch" | ||
) |
77 changes: 77 additions & 0 deletions
77
kde-frameworks/baloo/files/baloo-5.77.0-no-error-w-o-index.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
From d102b01ee59d93de3fe18c12364ea69a85ea723f Mon Sep 17 00:00:00 2001 | ||
From: Christoph Cullmann <[email protected]> | ||
Date: Thu, 31 Dec 2020 15:44:40 +0000 | ||
Subject: [PATCH] avoid errors for application startup if no baloo index was | ||
ever created | ||
|
||
use case: | ||
|
||
* a KDE application started e.g. in an non-KDE Plasma environment | ||
* a KDE application started with baloo indexing disabled | ||
|
||
you normally will get: | ||
|
||
kf.kio.slaves.tags: tag fetch failed: "Failed to open the database" | ||
kf.kio.slaves.tags: "tags:/" list() invalid url | ||
|
||
Now this is not issued if no index database exist. | ||
--- | ||
src/engine/database.cpp | 6 ++++++ | ||
src/engine/database.h | 7 +++++++ | ||
src/lib/taglistjob.cpp | 7 +++++++ | ||
3 files changed, 20 insertions(+) | ||
|
||
diff --git a/src/engine/database.cpp b/src/engine/database.cpp | ||
index 427210d0..ac93426c 100644 | ||
--- a/src/engine/database.cpp | ||
+++ b/src/engine/database.cpp | ||
@@ -247,3 +247,9 @@ QString Database::path() const | ||
QMutexLocker locker(&m_mutex); | ||
return m_path; | ||
} | ||
+ | ||
+bool Database::isAvailable() const | ||
+{ | ||
+ QMutexLocker locker(&m_mutex); | ||
+ return QFileInfo::exists(m_path + QStringLiteral("/index")); | ||
+} | ||
diff --git a/src/engine/database.h b/src/engine/database.h | ||
index 0f43b623..26d21101 100644 | ||
--- a/src/engine/database.h | ||
+++ b/src/engine/database.h | ||
@@ -73,6 +73,13 @@ public: | ||
*/ | ||
QString path() const; | ||
|
||
+ /** | ||
+ * Is the database available for use? | ||
+ * For example if indexing is disabled or the indexer did never run this is false. | ||
+ * @return database available | ||
+ */ | ||
+ bool isAvailable() const; | ||
+ | ||
private: | ||
/** | ||
* serialize access, as open might be called from multiple threads | ||
diff --git a/src/lib/taglistjob.cpp b/src/lib/taglistjob.cpp | ||
index cea57889..58945cc7 100644 | ||
--- a/src/lib/taglistjob.cpp | ||
+++ b/src/lib/taglistjob.cpp | ||
@@ -33,7 +33,14 @@ TagListJob::~TagListJob() | ||
void TagListJob::start() | ||
{ | ||
Database *db = globalDatabaseInstance(); | ||
+ | ||
if (!db->open(Database::ReadOnlyDatabase)) { | ||
+ // if we have no index, we have no tags | ||
+ if (!db->isAvailable()) { | ||
+ emitResult(); | ||
+ return; | ||
+ } | ||
+ | ||
setError(UserDefinedError); | ||
setErrorText(QStringLiteral("Failed to open the database")); | ||
emitResult(); | ||
-- | ||
GitLab | ||
|
34 changes: 34 additions & 0 deletions
34
kde-frameworks/baloo/files/baloo-5.77.0-strip-trailing-slash.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
From 9b61371fdefbd538938f20cdc87eed03d170fa5b Mon Sep 17 00:00:00 2001 | ||
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <[email protected]> | ||
Date: Sat, 12 Dec 2020 19:01:45 +0100 | ||
Subject: [PATCH] [BasicIndexingJob] Strip trailing slash from folders | ||
|
||
If BasicIndexingJob is called with a path with a trailing slash, the | ||
search for the last slash (separating name from parent path) goes wrong. | ||
|
||
This was wrong already earlier, but with commit 47ebc15844f6b8a8 | ||
("[Document] Add parent document ID and populate it") this caused | ||
document and parent id to be the same. | ||
|
||
CCBUG: 430273 | ||
--- | ||
src/file/basicindexingjob.cpp | 3 +++ | ||
1 file changed, 3 insertions(+) | ||
|
||
diff --git a/src/file/basicindexingjob.cpp b/src/file/basicindexingjob.cpp | ||
index e00c6a2b..c0f18ddd 100644 | ||
--- a/src/file/basicindexingjob.cpp | ||
+++ b/src/file/basicindexingjob.cpp | ||
@@ -23,6 +23,9 @@ BasicIndexingJob::BasicIndexingJob(const QString& filePath, const QString& mimet | ||
, m_mimetype(mimetype) | ||
, m_indexingLevel(level) | ||
{ | ||
+ if (m_filePath.endsWith(QChar('/'))) { | ||
+ m_filePath.chop(1); | ||
+ } | ||
} | ||
|
||
namespace { | ||
-- | ||
GitLab | ||
|