Cmake update patch for dbus master
Ralf Habacker
ralf.habacker at freenet.de
Mon Feb 15 03:12:50 PST 2010
Ralf Habacker schrieb:
> Tor Lillqvist schrieb:
> >> The only way I see is to use installation path based shared memory
> segments.
> >>
> >
> > I was first going to say that this sounds like a good idea, but then I
> > started thinking.
> >
> > Consider this scenario: Several apps distributed by different people
> > use dbus. No app directly requires another, but there is some useful
> > information oner app can send on the bus to another app if present.
> >
> For this purpose a global user session dbus daemon should be installable
> as as a standalone package which let the user session daemon start
> on user session logon.
>
> > All apps come bundled with dbus
> > and all install the dbus daemon and client library under their own
> installation folder. This is what one
> > should do, right?
> >
> The minimal requirement for apps should be a bundled dbus library to be
> able to connect to a dbus-daemon. The dbus-daemon may be bundled too but
> could be optional.
>
> > So if the name of the shared memory segment is based on where the dbus
> > client library (DLL) is installed, these apps will be using different
> > session buses, and won't be able to talk to the others.
> >
> By default a dbus daemon of a specific application should be configured
> on package build time to run a local session bus and the app to connect
> to these local session bus.
>
> On application install time the related installer could check if there
> is a user session bus daemon installed and could then offer a way to
> configure the bundled dbus to use the global user session bus. Maybe the
> standalone dbus package could have a little config gui for this purpose
> to minimize the required installers effort.
>
A possible implementation could extend the autolaunch bus address type
with a scope attribute
autolaunch:scope=<value>
where value could be the predefined term 'install-path'. If the server
find such a session bus address it will listen on a free tcp port and
publish the recent session bus address in a shared memory segment, which
is postfixed by a hash value of the libdbus installation root. Every
client which uses the same session bus address would be able to connect
the related daemon.
There is also an additional feature available by using this scope
attribute. Any non empty value except the above mentioned 'install-path'
value will create a specific namespace and could be used to create
specialized dbus session buses.
This feature will be enabled with a (cmake) configure option named
DBUS_USE_LIMITED_SESSION_DEFAULT_ADDRESS.
Any comments or addons ?
Regards
Ralf
More information about the dbus
mailing list