DBUS outside of the traditional desktop; user bus; RFC

Havoc Pennington hp at redhat.com
Mon Jan 31 17:12:17 PST 2005


On Mon, 2005-01-31 at 18:47 -0500, Daniel Reed wrote:
> On 2005-01-31T18:33-0500, Havoc Pennington wrote:
> ) I think it's important to note that we can only realistically do a
> ) (user,machine) tuple bus, not strictly speaking a user bus.
> 
> And for much the same reason we can only actually do a (session,machine) bus 
> for the session bus, despite any non-machine-isolated definitions of a 
> session!

The difference is that with a session you normally (without special
actions) run everything on one machine. With a homedir it's common
(without special actions) to share that homedir with multiple machines.
So you can't break if the per-homedir bus is unreachable.

There are lots of per-session things in the desktop already, including
the X server, most env variables, everything that's hanging off the X
server such as the WM, and so forth. People are used to that and most of
the software assumes it.

> Since org.freedesktop.DBus.User can store DBUS bus addresses in free form, 
> any support to forward session busses can also be used to forward the user 
> bus.

Here I think you're really talking about a bus that is for a session,
but the session is made up of multiple user shells. If you start with
shell A and from there log in to shell B on another machine, you want to
forward shell A's bus to shell B. Or if you just log on to two shells on
one machine, you may want to use the same bus for both to create a
single "session"

The user bus case is where you *separately* log on to machine 1 and
machine 2 fresh, with no common shell or machine. Then forwarding
doesn't work.

So perhaps a better way to define this bus is that it defines a "command
line session." Once you start thinking along those lines there may be
simpler solutions, e.g. just scope the bus to "all Linux console
sessions" or, independent of dbus, some way to open a Linux console with
a shell that is a child of another Linux console session. That would be
useful for more reasons than only dbus.

We need to know the use case. If it's per-homedir you can do one set of
things, if it's a "command line session" you can do another. When do you
use the "command line session" bus vs. the regular session bus? Those
are the kind of questions I don't know how to answer without a specific
app in mind.

Havoc




More information about the dbus mailing list