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