Summary: | Solid crashes if HAL is not running | ||
---|---|---|---|
Product: | [Frameworks and Libraries] solid | Reporter: | Artem Anisimov <aanisimov> |
Component: | libsolid-hal | Assignee: | Alberto Villa <avilla> |
Status: | RESOLVED UNMAINTAINED | ||
Severity: | crash | CC: | afiestas, dhillonv10, dschridde+kde, fabio.coatti, magnus.kessler |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
Artem Anisimov
2009-12-03 12:59:30 UTC
A concrete example of this is solid 4.3.4 crashing when running with hal-0.5.14. See gentoo bug 295600 (http://bugs.gentoo.org/show_bug.cgi?id=295600). The fixes from svn commits 1035622 (http://websvn.kde.org/?view=revision&revision=1035622) and 1057980 (http://websvn.kde.org/?view=revision&revision=1057980) should be back-ported to the 4.3 branch. The Gentoo bug seems to have been fixed, the patch might be applicable here, will put this up for core-devel and see what they have to say on this topic. Thanks. (In reply to comment #2) > The Gentoo bug seems to have been fixed In KDE 4.3.95 this bug is not fully fixed -- on systems running without HAL it's necessary to set SOLID_FAKEHW environment variable _before_ launching KDE. I believe that absence of HAL should be detected automatically. Does the Gentoo patch address this issue? @ Artem Anisimov: Nope, just checked the patch, it only deals with some brightness issues, not setting up the environmental variable, I know for a fact that Lucid (ubuntu next release) is not going to have HAL and that could be a huge problem for the users. Any advice on how to fix this? (In reply to comment #4) Now (as of KDE 4.3.90) Solid::ManagerBasePrivate::loadBackend (kdelibs/solid/solid/managerbase.cpp:44) simply looks for existence of SOLID_FAKEHW environment variable and uses Solid::Backends::Fake::FakeManager if one is found. I believe that the necessary modification is quite straightforward -- issue some simple HAL request (something like HAL version query) and see if fails with QDBusError::ServiceUnknown or not. I think this check should not be made in managerbase, but rather managers need to have method isAvailable() added. In this case loadBackend() can simply iterate over all registered backends and select one which is appropriate for the host system. A modification of the same sort is necessary to kdebase-workspace which, as I have previously reported, does not even try to adapt itself to the configuration of the host system. Hello! Sorry to be the bearer of bad news, but this project has been unmaintained for many years so I am closing this bug. Please try again with the latest version and submit a new bug to frameworks-solid if your issue persists. Thank you! |