diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2021-01-06 17:52:20 +0100 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2021-01-06 22:06:58 +0100 |
commit | b3a2c01693cb2d53d5fd730c26ceae43f2972afb (patch) | |
tree | 4eca23b4734904e8f5ee7f9addd95df5c71c6815 /kde-frameworks/baloo | |
parent | www-plugins/chrome-binary-plugins: automated update (87.0.4280.141) (diff) | |
download | gentoo-b3a2c01693cb2d53d5fd730c26ceae43f2972afb.tar.gz gentoo-b3a2c01693cb2d53d5fd730c26ceae43f2972afb.tar.bz2 gentoo-b3a2c01693cb2d53d5fd730c26ceae43f2972afb.zip |
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 <asturm@gentoo.org>
Diffstat (limited to 'kde-frameworks/baloo')
3 files changed, 151 insertions, 0 deletions
diff --git a/kde-frameworks/baloo/baloo-5.77.0-r1.ebuild b/kde-frameworks/baloo/baloo-5.77.0-r1.ebuild new file mode 100644 index 000000000000..ac7ba5028324 --- /dev/null +++ b/kde-frameworks/baloo/baloo-5.77.0-r1.ebuild @@ -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" +) diff --git a/kde-frameworks/baloo/files/baloo-5.77.0-no-error-w-o-index.patch b/kde-frameworks/baloo/files/baloo-5.77.0-no-error-w-o-index.patch new file mode 100644 index 000000000000..d49cc8f6d9d9 --- /dev/null +++ b/kde-frameworks/baloo/files/baloo-5.77.0-no-error-w-o-index.patch @@ -0,0 +1,77 @@ +From d102b01ee59d93de3fe18c12364ea69a85ea723f Mon Sep 17 00:00:00 2001 +From: Christoph Cullmann <cullmann@kde.org> +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 + diff --git a/kde-frameworks/baloo/files/baloo-5.77.0-strip-trailing-slash.patch b/kde-frameworks/baloo/files/baloo-5.77.0-strip-trailing-slash.patch new file mode 100644 index 000000000000..ab9c7639799f --- /dev/null +++ b/kde-frameworks/baloo/files/baloo-5.77.0-strip-trailing-slash.patch @@ -0,0 +1,34 @@ +From 9b61371fdefbd538938f20cdc87eed03d170fa5b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de> +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 + |