DeviceKit-power release next Monday

David Zeuthen david at fubar.dk
Wed Oct 7 09:24:43 PDT 2009


On Wed, 2009-10-07 at 07:02 +0700, Mikhail Gusarov wrote:
> Twas brillig at 19:40:48 06.10.2009 UTC-04 when david at fubar.dk did gyre
> and gimble:
> 
>  DZ> Applications (that are not disk utility, partitioning etc. apps)
>  DZ> should just be using the GIO API since it's simpler and do what
>  DZ> they need (discover/watch mounts). Or, of course, similar APIs if
>  DZ> you use other toolkits than the G stack.
> 
> As involved in E stack, I should comment this leats to major PitA:
> either you need to keep code to talk to different versions of DK-[dp]
> (== bloat) or to restrict your libraries to a limited set of versions of
> DK-[dp] (== useless).

Well, it's not so much that we break ABI all the time (it's only
happened once or twice or so). And when it happens, the break is usual
trivial or minor. And it's not like I like ABI transitions either.

The thing is - we just want to reserve the right to do change the ABI.
Which is completely reasonable. And this is just not going to change,
sorry - there is absolutely no reason to keep a stable ABI for this kind
of thing. It would hamper progress.

At the end of the day it's mostly a distro problem - when a distro
updates DeviceKit-disks with a new ABI they need to make sure all users
of DeviceKit-disks are properly updated. This may include writing
patches to users of DeviceKit-disks. So you might get the distros to do
the work.

If you, as a user of DeviceKit-disks, wants to support multiple ABIs
then that's kind of your decision. I would recommend against it though,
it's much better to just keep your code updated to the latest version.

FWIW, I think our version numbers should probably be changed so it is
easier for distros to coordinate this effort. E.g. we should probably
have

 <feature-version>.<abi-version>.<release>

where an ABI break means increasing the abi-version field. Then distros
can do things like

 Requires: DeviceKit-disks >= 1.2.3
 Requires: DeviceKit-disks  < 1.3.0

or something in packages using the ABI.

>  DZ> GLib and/or Gtk+ would also provide implementations on Win32/OS
>  DZ> X/whatever that uses the appropriate OS specific stuff.
> 
> So D-Bus DK-[dp] protocol is considered internal? D-Bus becomes just a
> mechanism for privilege separation and interaction with PolicyKit, and
> not a, uhm, service bus.

No, it is public ABI that is subject to change. So if you do use the
ABI, be prepared to having to update your software once in a while. I
don't think this is an outrageous thing to ask for. If you don't like
this it's very simple: just don't use the ABI.

     David




More information about the devkit-devel mailing list