DBus method naming of upower/udisks

randyf at sibernet.com randyf at sibernet.com
Thu Dec 10 20:49:58 PST 2009



On Thu, 10 Dec 2009, David Zeuthen wrote:

> On Thu, 2009-12-10 at 09:09 +0100, Martin Pitt wrote:
>> udisks already uses org.freedesktop.UDisks, and I expect upower will
>> change similarly.
>
> Right - and I think udisks, it being the project name is pretty OS
> neutral so I don't see any problem in using it in public interfaces. I
> also don't think we have any Linux specific bits in the interfaces.

   I don't mean to be disrespectful, but it doesn't surprise me that this 
is considered OS neutral.  However, the fact that "U" sits prominantly in 
the name implies that it is derived from 'udev': a Linux-only facility.

   Even 'LinuxMdStop' below is *not* OS agnostic., and suggested the btrfs 
interfaces below imply that "others should conform to Linux" (why not 
"there are interfaces for ZFS which might look similar to what btrfs will 
need" - though  this would imply a different OS centricity).

   I would go further to state that unless that the primary contributors of 
these names or interfaces is not _actively_ using at least 3 different 
OSes (versions or relicants of one doesn't count), providing either claims 
or code to the common good as OS neutral, is a non-sequitor (and, dare I 
say, this is sounding more like the Windows Borg collective).


   IM(very)HO, the fundamental problem with Devicekit (and friends, 
including UDisks and UPower), is that the name of the provider is defined 
*instead of* the name of the desired service.  If there is *really* an 
intent to be OS neutral, then describe first the service that is desired 
(i.e. power, suspend, halt, etc.), and let an arbitrary provider handle 
this service.


   So, going back to what Jedy may have started to suggest (and focusing on 
a single service: power), the *common* service that *ANY* (pardon the 
shouting) OS will implement is "power".  This would, in it's most basic 
form, include "halt/shutdown", "restart/reboot", and "suspend".  No matter 
what OS or hypervisor, I believe that these are the primary three states 
of "power" that will be implemented by all.  These would be best presented 
in a DBus name as:

    org.freedesktop.power

with the addition of subordinate services:

    org.freedesktop.power.halt
    org.freedesktop.power.restart
    org.freedesktop.power.suspend

   It would be not only trivial for any provider, including UPower, to be 
the sole (which also, IMHO, is key to any OS) provider to these services, 
without a definition as to _how_ these providers should perform this 
service.  Given the above, there could be any arbitrary application (say, 
GPM) that could give the user a common view into how to manage *any* OS 
(including the dreaded Redmond OS).  This is what I believe to be an OS 
neutral view.

   Now, I grant that this is a hard problem to solve, but it should always 
start with "what is the problem we are trying to solve", rather than "what 
is the tool we need to use to solve the problem".

rf

>
> Note that method names such as LinuxMdStop() isn't really related to
> "Linux, the kernel" or "Linux, the OS" - instead it's related to the
> on-disk format of (Linux) MD software raid and associated tools (e.g.
> mdadm(8)) and drivers (e.g. md(4)). Ditto for things like LuksLock()
> referring to LUKS (Linux Unified Key Setup).
>
> Presumably non-Linux OSes (or non-Linux kernels) could implement both
> Linux MD-RAID and LUKS - if not, implementations can just return the
> NotSupported error.
>
> FWIW, we can always add similar interfaces for e.g. FreeBSD geom or ZFS
> or whatever - FWIW, I'm planning to add interfaces for better btrfs
> integration - might look similar to what ZFS will need.
>
> Thanks,
> David
>
>
> _______________________________________________
> devkit-devel mailing list
> devkit-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/devkit-devel
>


More information about the devkit-devel mailing list