assert in kservicetypefactory.cpp
David Faure
faure at kde.org
Tue Aug 18 20:17:51 UTC 2015
On Tuesday 18 August 2015 10:45:00 Boudewijn Rempt wrote:
> if (!bus->isServiceRegistered(KDED_SERVICE_NAME)) { evaluates to false
I'm confused by the possible double negation. Do you mean isServiceRegistered returns true?
So it does see kded5 running on the current DBus session, right?
Oh. I think you found a real bug :-)
Does this patch help?
diff --git a/src/sycoca/ksycoca.cpp b/src/sycoca/ksycoca.cpp
index 7c4c3da..c203484 100644
--- a/src/sycoca/ksycoca.cpp
+++ b/src/sycoca/ksycoca.cpp
@@ -468,6 +468,7 @@ bool KSycocaPrivate::checkDatabase(BehaviorsIfNotFound ifNotFound)
}
} else {
//qCDebug(SYCOCA) << "kded5 found";
+ kdedRunning = true;
if (QStandardPaths::isTestModeEnabled()) {
QDBusInterface sycoca(KDED_SERVICE_NAME, KBUILDSYCOCA_PATH);
const QDBusReply<bool> testMode = sycoca.call(QLatin1String("isTestModeEnabled"));
The unittests have to work without kded, so they didn't catch this. Anyway I'm killing that kded
dependency as soon as I find the time.
> I might be better off porting away from kio since I cannot ship something
> that needs a running daemon or background process :-(
Well if you cannot even accept a secondary process then indeed KIO won't be an option for you.
But why such a strict requirement? This is no problem on Windows; is this about Android or iOS then?
--
David Faure, faure at kde.org, http://www.davidfaure.fr
Working on KDE Frameworks 5
More information about the Kde-frameworks-devel
mailing list