dbus: api or implementation detail

David Zeuthen david at fubar.dk
Wed Jul 13 11:19:26 PDT 2005


Hi,

On Wed, 2005-07-13 at 08:57 -0700, Artem Kachitchkine wrote:
> Hi,
> 
> A set of interfaces between HAL and desktop apps represents a contract 
> with a well-known stability level (for instance, once HAL reaches 1.0, 
> the contract remains valid throughout 1.x releases). Is D-BUS part of 
> the contract? 

Yes, D-BUS is supposed to be part of the contract. There are certain
areas where we rely on D-BUS specific behavior, e.g. obtaining locks on
devices, D-BUS method signatures. It's true that once we reach 1.0 all
interfaces MUST remain stable.

> From my limited understanding, libhal.h + 
> properties/capabilities are what the apps can expect to be stable. 

Actually, apps can bypass libhal and use D-BUS directly. That's how
hal-device-manager (written in Python) works (see below). Btw, the set
of D-BUS interfaces with associated methods is also to be considered a
stable ABI; right now this is work in progress.

> D-BUS 
> seems to be an implementation detail: HAL could change D-BUS message 
> definitions or even switch to a different IPC mechanism without breaking 
> the apps, as long as hald and libhal are in sync. Is it true or at least 
> the direction HAL is moving towards?

I think the direction we're moving towards is to some day deprecating
libhal in favor of programming languages / runtimes (glib, Qt,
Java, .NET/Mono) using D-BUS bindings to access HAL.

Btw, this document

 http://cvs.freedesktop.org/*checkout*/hal/hal/doc/spec/hal-spec.html

is intended for describing all sorts of details (interfaces, what stable
means etc) like this. The document is somewhere in between 0.4.x and
0.5.x but I'm working on updating this right now actually.

On the way to 1.0 I do hope to only add interfaces and not change a lot
of stuff. We did have minor breakage going from 0.4.x to 0.5.x but such
is life I guess.

Hope this clarifies, otherwise just ask!

Cheers,
David


_______________________________________________
hal mailing list
hal at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/hal



More information about the Hal mailing list