another DeviceKit backend for Solid

Benjamin K. Stuhl bks24 at cornell.edu
Sat Aug 8 22:57:34 UTC 2009


On Saturday 08 August 2009 16:06:05 Kevin Kofler wrote:
> Benjamin K. Stuhl wrote:
> >   I committed another, alternative, DeviceKit-based Solid backend to
> > KDE's Subversion repository yesterday, in
> > branches/work/alternative-solid- devicekit. It grew out of some
> > experiments I was doing with writing a Qt-ish libudev wrapper (you can
> > see the API in solid/backends/udevqt.h). Since it got large enough to
> > perhaps be useful to other people, and also to convince me that the
> > general approach would work, I imported it into Subversion from my GitHub
> > repository. The major difference from Pino and Lukas's
> > work/solid-devicekit branch is that I also use libudev for enumeration,
> > as well as DeviceKit-*;
>
> Great! I told ltinkl this is necessary, he wasn't very thrilled by the
> idea.

I can appreciate his lack of enthusiasm since it adds some complexity to the 
code, but there's no way to get things like camera information from DeviceKit-
* -- e.g. AFAICT gphoto's plan is that they will just dump a .rules file into 
udev that attaches a GPHOTO_DRIVER property to the detected cameras.

> > I have also made an effort to try to minimize the amount of boilerplate
> > code each Interface needs (c.f.
> > solid/backends/devicekit/dkdevice.cpp:dbusDeviceCall() and
> > solid/backends/devicekit/dkinterface.h). Please take a look and comment
> > or help out, especially if you know DeviceKit or libudev.
>
> In what state is it in? Is it something we could put into Rawhide, keeping
> in mind that the Fedora 12 release is less than 3 months from now? Or is it
> still incomplete and/or buggy?
>
> (We decided that the original work/solid-devicekit branch is not suitable
> because it's missing features the HAL backend has. With libudev, we should
> be able to provide those features.)

I would not say it's ready for Rawhide, especially since it doesn't have all 
the Solid::Ifaces implemented yet. But even once the backend is "finished" (and 
even it the code was bug-free), it's going to have some regressions against 
HAL, simply because upstream projects like gphoto and libgpod haven't yet  
released versions that store their eumeration data in udev. Maybe by Fedora 13 
those versions will be out and KDE can switch to DeviceKit, but in the 
meantime there would be a lot of complaints of "why did KDE suddenly stop 
detecting my camera?".

To be honest, libudev/DeviceKit-* currently lacks substantial features in 
comparison with HAL. Maybe in the future there will be a DeviceKit-* for every 
device imaginable, but in the meantime I feel like I'm having to steal 
substantial amounts of ideas from HAL's addons to get the features we need. 
(E.g. I'm currently writing a class that uses the sg or bsg device associated 
with your cdrom drive to listen for eject button presses -- in HAL, this is 
done by hal-addon-storage, but DeviceKit-disks doesn't provide it.)

Regards,
-- BKS



More information about the kde mailing list